using PandaWebAPI.Models.ef;

namespace PandaWebAPI.Services;

/// <summary>
/// 站点统计服务接口
/// </summary>
public interface ISiteStatisticService
{
    /// <summary>
    /// 获取所有统计数据
    /// </summary>
    Task<IEnumerable<SiteStatistic>> GetAllAsync();

    /// <summary>
    /// 根据ID获取统计数据
    /// </summary>
    Task<SiteStatistic?> GetByIdAsync(Guid id);

    /// <summary>
    /// 根据日期获取统计数据
    /// </summary>
    Task<SiteStatistic?> GetByDateAsync(DateOnly date);

    /// <summary>
    /// 获取日期范围内的统计数据
    /// </summary>
    Task<IEnumerable<SiteStatistic>> GetByDateRangeAsync(DateOnly startDate, DateOnly endDate);

    /// <summary>
    /// 创建统计数据
    /// </summary>
    Task<SiteStatistic> CreateAsync(SiteStatistic siteStatistic);

    /// <summary>
    /// 更新统计数据
    /// </summary>
    Task<SiteStatistic> UpdateAsync(SiteStatistic siteStatistic);

    /// <summary>
    /// 删除统计数据
    /// </summary>
    Task DeleteAsync(Guid id);

    /// <summary>
    /// 更新今日统计数据
    /// </summary>
    Task<SiteStatistic> UpdateTodayStatsAsync();
} 